<?php

namespace addons\alisms;

use fast\Random;
use think\Addons;

/**
 * Alisms
 */
class Alisms extends Addons
{

    /**
     * 插件安装方法
     * @return bool
     */
    public function install()
    {
        return true;
    }

    /**
     * 插件卸载方法
     * @return bool
     */
    public function uninstall()
    {
        return true;
    }

    /**
     * 短信发送行为
     * @param array $params 必须包含mobile,event,code
     * @return  boolean
     */
//    public function smsSend(&$params)
//    {
//        $config = get_addon_config('alisms');
//        $alisms = new \addons\alisms\library\Alisms();
//        $result = $alisms->mobile($params['mobile'])
//            ->template($config['template'][$params['event']])
//            ->param(['code' => $params['code']])
//            ->send();
//        return $result;
//    }

    public static function smsSend($params)
    {
        $code = is_null($params['code']) ? Random::numeric(config('captcha.length')) : $params['code'];
        $time = time();
        $ip = request()->ip();
        $sms = \app\common\model\Sms::create(['event' => $params['event'], 'mobile' => $params['mobile'], 'code' => $code, 'ip' => $ip, 'createtime' => $time]);
        $config = get_addon_config('alisms');

        $url               = "https://api.mix2.zthysms.com/v2/sendSms";
        $param['username'] = $config['key'];
        $param['password'] = md5( md5( $config['secret'] ).time());
        $param['tKey']     = time();
        $param['mobile']   = $params['mobile'];
        $param['content']  = '您的验证码为' . $code . '，如非本人操作，请忽略本短信。【'.$config['template'][$params['event']].'】';
        $result            = http_post_data($url,$param);
        if ($result['code'] !=200) {
            $sms->delete();
            return false;
        }
        return true;
    }

    /**
     * 短信发送通知
     * @param array $params 必须包含 mobile,event,msg
     * @return  boolean
     */
    public function smsNotice(&$params)
    {
        $config = get_addon_config('alisms');
        $alisms = \addons\alisms\library\Alisms::instance();
        if (isset($params['msg'])) {
            if (is_array($params['msg'])) {
                $param = $params['msg'];
            } else {
                parse_str($params['msg'], $param);
            }
        } else {
            $param = [];
        }
        $param = $param ? $param : [];
        $params['template'] = isset($params['template']) ? $params['template'] : (isset($params['event']) && isset($config['template'][$params['event']]) ? $config['template'][$params['event']] : '');
        $result = $alisms->mobile($params['mobile'])
            ->template($params['template'])
            ->param($param)
            ->send();
        return $result;
    }

    /**
     * 检测验证是否正确
     * @param   $params
     * @return  boolean
     */
    public function smsCheck(&$params)
    {
        return true;
    }
}
